package com.qidian.mes.md.controller;

import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import com.mysql.cj.xdevapi.JsonParser;
import com.qidian.mes.md.service.MaterialAndProductClassifyService;
import com.qidian.mes.pojo.MaterialAndProductClassify;
import com.qidian.mes.util.pojo.QdResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * @Author: 小可怎么都睡不够
 * @Description:
 * @Time: 2024-04-04 16:38
 **/
@RestController
@RequestMapping("/mat-pro/classify")
@CrossOrigin
public class MaterialAndProductClassifyController {
    @Autowired
    MaterialAndProductClassifyService materialAndProductClassifyService;

    /**
     * @Author: 小可怎么都睡不够
     * @Date: 4/4/2024
     * @Description: 获取所有产品/物料分类信息
     * @Name: query
     * @return: com.qidian.mes.util.pojo.QdResult<java.util.List<com.qidian.mes.pojo.MaterialAndProductClassify>>
    */
    @GetMapping("/query")
    public QdResult<List<MaterialAndProductClassify>> query(){
        return materialAndProductClassifyService.findAll();
    }

    /**
     * @Author: 小可怎么都睡不够
     * @Date: 6/4/2024
     * @Description:  修改分类名称
     * @Name: updateClassifyName
     * @param name 名称
     * @param id 分类ID
     * @return: com.qidian.mes.util.pojo.QdResult
    */

    @GetMapping("/update/name")
    public QdResult updateClassifyName(@RequestParam String name,@RequestParam String id){
        return materialAndProductClassifyService.updateClassifyName(name,id);
    }

    @DeleteMapping("/del/{id}")
    public QdResult deleteClassify(@PathVariable Integer id){
        return materialAndProductClassifyService.deleteClassify(id);
    }

    /**
     * @Author: 小可怎么都睡不够
     * @Date: 6/4/2024
     * @Description:  添加物料产品分类信息
     * @Name: addClassify
     * @param data json格式的数据
     * @return: com.qidian.mes.util.pojo.QdResult
    */
    @PostMapping("/add")
    public QdResult addClassify(@RequestBody String data){
        JSONObject jsonObject = JSON.parseObject(data);
        return materialAndProductClassifyService.addClassify(
                jsonObject.getInteger("category"),
                jsonObject.getString("name")
                );
    }
    
    /**
     * @Author: 小可怎么都睡不够
     * @Date: 6/4/2024
     * @Description: 根据名称精确查询分类信息
     * @Name: queryClassifyByName 
     * @param name 分类信息，为空时查询所有
     * @return: com.qidian.mes.util.pojo.QdResult 
    */
    @GetMapping("/query/{name}")
    public QdResult queryClassifyByName(@PathVariable String name){
        return materialAndProductClassifyService.queryClassifyByName(name);
    }
}
